作者:魅客网小魅 | 来源:互联网 | 2023-01-01 05:45
我想知道为什么在以下代码中,filesystem
找不到命名空间:
g ++ -std = c ++ 17 main.cpp -lstdc ++
// #include <- error, so changed to the following:
#include
namespace fs = std::filesystem;
int main()
{
return 0;
}
错误:
main.cpp:3:21: error: ‘filesystem’ is not a namespace-name
namespace fs = std::filesystem;
^
main.cpp:3:31: error: expected namespace-name before ‘;’ token
namespace fs = std::filesystem;
gcc版本5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1~16.04.5)
PiotrNycz..
9
表示实验名称空间
namespace fs = std::exprimental::filesystem;
请参阅:http://en.cppreference.com/w/cpp/experimental/fs/path
1> PiotrNycz..:
表示实验名称空间
namespace fs = std::exprimental::filesystem;
请参阅:http://en.cppreference.com/w/cpp/experimental/fs/path
2> Miles Budnek..:
GCC 5.4.0于2016年6月发布; 在采用C++ 17标准之前一年多.它及其libstdc ++版本对C++ 17的支持非常有限.你可以看到,当GCC加入C++语言17功能在这里当的libstdc ++加入C++ 17层标准库的功能在这里.
在GCC 5.4发布时,文件系统库尚未在std::filesystem
命名空间中实现.它与该版本中包含的任何其他标头一起位于std::experimental
命名空间中.